const cardService = require('../../services/card');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    cardDetail: null, // 卡片详情
    loading: true, // 加载状态
    cardId: null // 卡片ID
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const { id } = options;
    if (id) {
      this.setData({ cardId: id });
      this.loadCardDetail(id);
    } else {
      wx.showToast({
        title: '卡片ID不能为空',
        icon: 'none'
      });
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    if (this.data.cardId) {
      this.loadCardDetail(this.data.cardId);
    }
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  /**
   * 加载卡片详情
   * @param {string} cardId 卡片ID
   */
  async loadCardDetail(cardId) {
    this.setData({ loading: true });

    try {
      const result = await cardService.getCardDetail({
        id: cardId,
        showLoading: false
      });

      if (result.success) {
        // 处理卡片详情数据
        const cardDetail = {
          ...result.data,
          // 格式化时间
          created_at_text: result.data.created_at_text || this.formatTime(result.data.created_at),
          expired_at_text: result.data.expired_at_text || (result.data.expired_at > 0 ? this.formatTime(result.data.expired_at) : ''),
          card_item_expired_at_text: result.data.card_item_expired_at_text || (result.data.card_item_expired_at > 0 ? this.formatTime(result.data.card_item_expired_at) : ''),
          // 状态样式
          status_class: this.getStatusClass(result.data),
          // 是否过期
          is_expired: result.data.is_expired || false,
          is_card_item_expired: result.data.is_card_item_expired || false
        };

        this.setData({
          cardDetail,
          loading: false
        });

        // 停止下拉刷新
        wx.stopPullDownRefresh();
      } else {
        wx.showToast({
          title: result.message || '获取卡片详情失败',
          icon: 'none'
        });
        this.setData({ loading: false });
      }
    } catch (error) {
      console.error('加载卡片详情失败:', error);
      wx.showToast({
        title: '网络错误，请重试',
        icon: 'none'
      });
      this.setData({ loading: false });
    }
  },

  /**
   * 格式化时间
   * @param {number} timestamp 时间戳
   * @returns {string} 格式化后的时间
   */
  formatTime(timestamp) {
    if (!timestamp) return '';
    const date = new Date(timestamp * 1000);
    return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} ${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}`;
  },

  /**
   * 获取状态样式类
   * @param {Object} item 卡片项
   * @returns {string} 样式类名
   */
  getStatusClass(item) {
    if (item.is_expired || item.is_card_item_expired) {
      return 'card-expired';
    }
    if (item.card_item_status === 1) {
      return 'card-used';
    }
    return 'card-active';
  },

  /**
   * 复制卡密
   */
  copyCardNumber() {
    const { cardDetail } = this.data;
    if (cardDetail && cardDetail.card_number) {
      wx.setClipboardData({
        data: cardDetail.card_number,
        success: () => {
          wx.showToast({
            title: '卡密已复制',
            icon: 'success'
          });
        }
      });
    }
  },

  /**
   * 复制卡号
   */
  copyCardNo() {
    const { cardDetail } = this.data;
    if (cardDetail && cardDetail.card_no) {
      wx.setClipboardData({
        data: cardDetail.card_no,
        success: () => {
          wx.showToast({
            title: '卡号已复制',
            icon: 'success'
          });
        }
      });
    }
  },

  /**
   * 重新加载数据
   */
  onReload() {
    if (this.data.cardId) {
      this.loadCardDetail(this.data.cardId);
    }
  }
}) 